/**
 * 导入公告信息脚本
 * 根据90指令返回的公告数据导入到数据库
 */

const mysql = require('mysql2/promise');
require('dotenv').config({ path: './nestjs-app/.env' });

class AnnouncementImporter {
  constructor() {
    this.connection = null;
  }

  async connect() {
    try {
      this.connection = await mysql.createConnection({
        host: process.env.DB_HOST || '43.143.253.188',
        port: process.env.DB_PORT || 3306,
        user: process.env.DB_USER || 'nextjs',
        password: process.env.DB_PASS || 'yEAiRE2jcxTyRBy5',
        database: process.env.DB_NAME || 'nextjs',
        timezone: '+08:00'
      });
      console.log('✅ 数据库连接成功');
    } catch (error) {
      console.error('❌ 数据库连接失败:', error.message);
      throw error;
    }
  }

  async disconnect() {
    if (this.connection) {
        await this.connection.end();
        console.log('🔌 数据库连接已关闭');
    }
  }

  /**
   * 检查公告表是否存在
   */
  async checkAnnouncementTable() {
    try {
      console.log('🔍 检查公告表...');
      
      // 检查是否有公告相关的表
      const [tables] = await this.connection.execute(`
        SHOW TABLES LIKE '%announcement%'
      `);

      console.log('📊 公告相关表:');
      if (tables.length > 0) {
        tables.forEach(table => {
          console.log(`  ${Object.values(table)[0]}`);
        });
        return Object.values(tables[0])[0];
      } else {
        console.log('  未找到公告相关表');
        return null;
      }
    } catch (error) {
      console.error('❌ 检查公告表失败:', error.message);
      return null;
    }
  }

  /**
   * 创建公告表
   */
  async createAnnouncementTable() {
    try {
      console.log('🔄 创建公告表...');

        const createTableSQL = `
        CREATE TABLE IF NOT EXISTS announcements (
          id INT PRIMARY KEY AUTO_INCREMENT,
          title VARCHAR(255) NOT NULL COMMENT '公告标题',
          content TEXT NOT NULL COMMENT '公告内容',
          state TINYINT DEFAULT 1 COMMENT '状态：1-启用，2-禁用',
          create_time DATETIME COMMENT '创建时间',
          update_time DATETIME COMMENT '更新时间',
          INDEX idx_state (state),
          INDEX idx_create_time (create_time)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公告表'
                `;

        await this.connection.execute(createTableSQL);
      console.log('✅ 公告表创建成功');

    } catch (error) {
      console.error('❌ 创建公告表失败:', error.message);
      throw error;
    }
  }

  /**
   * 导入公告数据
   */
  async importAnnouncements() {
    try {
      console.log('🔄 开始导入公告数据...');

      // 从90指令返回的公告数据
      const announcements = [
        {
          id: 92,
          title: "★游戏封号规则★ ",
          content: "为了维护游戏的公平性，系统已经开启自动筛查功能，经过ip核查后，发现同一个人控制超过9个角色的情况，官方将采取封号、限制交易等措施。",
          state: 2,
          createTime: "2021-08-03 08:35:39.0"
        },
        {
          id: 43,
          title: "角色转移调整计划",
          content: "即日起，将根据以下方式转移角色（如有变动另行通知）。\r\n1、转移时间修改为工作日的10点-20点（只要工作人员有空就给转，这之间我们可能吃饭睡觉打豆豆）；\r\n2、转出的角色需要达到VIP3；\r\n3、转出的角色需要在其身上扣除3000金币手续费；\r\n4、新区开启7天内不能转移角色。\r\n以下为注意事项：\r\n1、需要交易角色的两人再拉上工作人员，组成三人群；\r\n2、交易双方提供自己需要转移和接收的角色状态页面截图；\r\n3、之后再开始转移操作；\r\n4、最重要的一点，切记在工作人员操作之后再转账。\r\n联系QQ：2326350384",
          state: 2,
          createTime: "2020-10-07 11:24:03.0"
        },
        {
          id: 172,
          title: "中元节活动",
          content: "活动时间：9月6-8日\r\n1.活动期间，直接使用副将心法书五倍效果（每天限20本）；\r\n2.活动期间，体力值双倍领取；\r\n3.活动期间，驯养坐骑效果翻倍（每20金增加平时双倍经验）。\r\n\r\n联系Q：2326350384",
          state: 1,
          createTime: "2025-09-05 17:28:46.0"
        },
        {
          id: 171,
          title: "七夕情人节活动",
          content: "活动时间：8月29-31日 \r\n1.活动期间，游乐场手续费低至1%；\r\n2.活动期间，体力值效果3倍；\r\n3.活动期间，宴请副将效果翻倍（每90金增加2000点默契度）。\r\n\r\n联系Q：2326350384",
          state: 1,
          createTime: "2025-08-28 17:51:38.0"
        },
        {
          id: 170,
          title: "建军节活动",
          content: "活动时间：8月1-3日\r\n1.活动期间，宝库限时出售国士令；\r\n2.活动期间，宝库商品随机4-7折出售；\r\n3.活动期间，驯养坐骑效果翻倍（每20金增加平时双倍经验）。",
          state: 1,
          createTime: "2025-07-31 14:35:54.0"
        },
        {
          id: 169,
          title: "父亲节活动",
          content: "活动时间：6月15-17日\r\n1.活动期间，直接使用副将心法书五倍效果（每天限20本）；\r\n2.活动期间，体力值效果3倍；\r\n3.活动期间，宴请副将效果翻倍（每90金增加2000点默契度）。",
          state: 1,
          createTime: "2025-06-14 22:53:39.0"
        },
        {
          id: 168,
          title: "端午节活动",
          content: "活动时间：5月31日-6月3日\r\n1.活动期间，游乐场手续费低至1%；\r\n2.活动期间，驯养坐骑效果翻倍（每20金增加平时双倍经验）；\r\n3.活动期间，体力值双倍领取。",
          state: 1,
          createTime: "2025-05-30 19:49:09.0"
        },
        {
          id: 167,
          title: "桃园结义 数据清理",
          content: "因过多冗余数据占据内存，为提升运行速度，将于5月19日早10点进行数据清理。\r\n针对1年内没有登录过，并且未达到VIP3的角色进行清理工作。\r\n如还需要保留角色的玩家请于5月19日之前登陆并游玩10分钟以上。",
          state: 1,
          createTime: "2025-05-14 18:33:44.0"
        },
        {
          id: 166,
          title: "母亲节活动",
          content: "活动时间：5月11-13日\r\n1.活动期间，宝库限时出售国士令；\r\n2.活动期间，体力值效果3倍；\r\n3.活动期间，宴请副将效果翻倍（每90金增加2000点默契度）。",
          state: 1,
          createTime: "2025-05-10 21:30:16.0"
        },
        {
          id: 165,
          title: "五一劳动节活动",
          content: "活动时间：5月1-3日\r\n1.活动期间，游乐场手续费低至1%；\r\n2.活动期间，驯养坐骑效果翻倍（每20金增加平时双倍经验）；\r\n3.活动期间，直接使用副将心法书五倍效果（每天限20本）。",
          state: 1,
          createTime: "2025-05-01 12:27:59.0"
        },
        {
          id: 163,
          title: "清明节活动",
          content: "活动时间：4月4-6日\r\n1.活动期间，宝库限时出售国士令；\r\n2.活动期间，体力值效果3倍；\r\n3.活动期间，宴请副将效果翻倍（每90金增加2000点默契度）。",
          state: 1,
          createTime: "2025-04-03 11:12:32.0"
        },
        {
          id: 162,
          title: "大年活动",
          content: "活动时间：1月29-31日 \r\n1.活动期间，散财童子降临，每天10点开始散财，一小时一次，一天共10次，每次随机5名在线玩家获得200金币； \r\n2.活动期间，体力值效果3倍；\r\n3.活动期间，宴请副将效果翻倍（每90金增加2000点默契度）。",
          state: 1,
          createTime: "2025-01-29 10:24:53.0"
        },
        {
          id: 161,
          title: "圣诞节活动",
          content: "活动时间：12月24-26日 \r\n1.活动期间，散财童子降临，每天10点开始散财，一小时一次，一天共10次，每次随机5名在线玩家获得200金币；\r\n2.活动期间，体力值效果3倍； \r\n3.活动期间，直接使用副将心法书五倍效果（每天限20本）。",
          state: 1,
          createTime: "2024-12-23 19:49:06.0"
        },
        {
          id: 160,
          title: "双十二活动",
          content: "活动时间：12月12-14日\r\n1.活动期间，宝库限时出售国士令；\r\n2.活动期间，宝库商品随机4-7折出售；\r\n3.活动期间，宴请副将效果翻倍（每90金增加2000点默契度）。",
          state: 1,
          createTime: "2024-12-11 23:51:20.0"
        },
        {
          id: 159,
          title: "新区到来《长坂怒吼》",
          content: "11月25日中午11点开启新区《长坂怒吼》\\r\\n冲新区，新国士副将曹操、吕布、貂蝉降临；全新玩法\\"单刀赴会\\"，独创的双人公平竞技模式。 \\r\\n更有全新抽奖大转盘，30W金币奖池等你来抽。\\r\\n新区冲级、养副将、玩游乐场，发放大量现金、新副将、金币奖励(共计两大波) \\r\\n第一波，开区7天后（12月2日10点统计） \\r\\n等级榜奖励： \\r\\n第1名：88元+曹操虎符*20 \\r\\n第2名：58元+曹操虎符*15 \\r\\n第3名：28元+曹操虎符*10 \\r\\n第4-6名：8888金+貂蝉虎符*8 \\r\\n第7-10名：6666金+吕布虎符*5 \\r\\n副将榜奖励（副将等级超过主将10级以上不能领取奖励，有VIP特权除外）： \\r\\n第1名：88元+吕布虎符*20 \\r\\n第2名：58元+吕布虎符*15 \\r\\n第3名：28元+吕布虎符*10 \\r\\n第4-6名：6666金+曹操虎符*8 \\r\\n第7-10名：3333金+貂蝉虎符*5 \\r\\n娱乐榜奖励： \\r\\n第1名：15000金+貂蝉虎符*20\\r\\n第2名：12000金+貂蝉虎符*15\\r\\n第3名：10000金+貂蝉虎符*10\\r\\n第4-6名：6000金+吕布虎符*8\\r\\n第7-10名：3000金+曹操虎符*5\\r\\n\\r\\n第二波奖励，开区14天后（12月8日10点统计） \\r\\n等级榜奖励： \\r\\n第1名：128元+曹操虎符*20\\r\\n第2名：88元+吕布虎符*15\\r\\n第3名：68元+貂蝉虎符*12\\r\\n第4-6名：16666金+曹操虎符*10\\r\\n第7-10名：8888金+吕布虎符*8\\r\\n第11-20名：6666金+貂蝉虎符*5\\r\\n副将榜奖励（副将等级超过主将10级以上不能领取奖励,有VIP特权除外）： \\r\\n第1名：128元+吕布虎符*20\\r\\n第2名：88元+曹操虎符*15\\r\\n第3名：68元+貂蝉虎符*12\\r\\n第4-6名：8888金+吕布虎符*10\\r\\n第7-10名：6666金+曹操虎符*8\\r\\n第11-20名：3333金+貂蝉虎符*5\\r\\n娱乐榜奖励： \\r\\n第1名：30000金+貂蝉虎符*20\\r\\n第2名：25000金+吕布虎符*15\\r\\n第3名：20000金+曹操虎符*12\\r\\n第4-6名：10000金+貂蝉虎符*10\\r\\n第7-10名：6000金+吕布虎符*8\\r\\n第11-20名：3000金+曹操虎符*5",
          state: 1,
          createTime: "2024-11-24 11:50:32.0"
        },
        {
          id: 158,
          title: "父亲节活动",
          content: "活动时间：6月16-21日\r\n1、6月16-18日，开启宝库折扣活动，购物享受随机4-7折扣（每天限购500个道具）；\r\n2、6月16-18日，游乐场手续费低至1%；\r\n3、6月16-18日，体力值战斗效果3倍；\r\n4、6月19-21日，驯养坐骑效果翻倍（每20金增加平时双倍经验）；\r\n5、6月19-21日，体力值双倍领取，\r\n6、6月19-21日，直接使用副将心法书五倍效果（每天限20本）。",
          state: 1,
          createTime: "2024-06-16 00:13:18.0"
        },
        {
          id: 157,
          title: "劳动节活动",
          content: "活动时间：5月1-5日\r\n1、5月1-3日，宝库可购买获得"国士令"（每个角色限购10个）； \r\n2、5月1-3日，开启宝库折扣活动，购物享受随机4-7折扣（每天限购500个道具）；\r\n3、5月1-3日，直接使用副将心法书五倍效果（每天限20本）；\r\n4、5月3-5日，驯养坐骑效果翻倍（每20金增加平时双倍经验）；\r\n5、5月3-5日，体力值战斗3倍效果。\r\n\r\n有游戏问题可联系QQ处理：2326350384。",
          state: 1,
          createTime: "2024-04-30 18:21:43.0"
        },
        {
          id: 156,
          title: "新区《七进七出》",
          content: "4月29日中午11点开启新区《七进七出》 \r\n冲新区，新国士副将曹操、吕布、貂蝉降临；全新玩法"单刀赴会"，独创的双人公平竞技模式。\r\n更有全新抽奖大转盘，30W金币奖池等你来抽。 \r\n新区冲级、养副将、玩游乐场，发放大量现金、新副将、金币奖励(共计两大波) \r\n第一波，开区7天后（5月5日10点统计） \r\n等级榜奖励： \r\n第1名：88元+曹操虎符*20 \r\n第2名：58元+曹操虎符*15 \r\n第3名：28元+曹操虎符*10 \r\n第4-6名：8888金+貂蝉虎符*8 \r\n第7-10名：6666金+吕布虎符*5 \r\n副将榜奖励（副将等级超过主将10级以上不能领取奖励，有VIP特权除外）： \r\n第1名：88元+吕布虎符*20 \r\n第2名：58元+吕布虎符*15 \r\n第3名：28元+吕布虎符*10 \r\n第4-6名：6666金+曹操虎符*8 \r\n第7-10名：3333金+貂蝉虎符*5 \r\n娱乐榜奖励： \r\n第1名：15000金+貂蝉虎符*20 \r\n第2名：12000金+貂蝉虎符*15 \r\n第3名：10000金+貂蝉虎符*10 \r\n第4-6名：6000金+吕布虎符*8 \r\n第7-10名：3000金+曹操虎符*5\r\n第二波奖励，开区14天后（5月12日10点统计） \r\n等级榜奖励： \r\n第1名：128元+曹操虎符*20 \r\n第2名：88元+吕布虎符*15 \r\n第3名：68元+貂蝉虎符*12 \r\n第4-6名：16666金+曹操虎符*10 \r\n第7-10名：8888金+吕布虎符*8 \r\n第11-20名：6666金+貂蝉虎符*5 \r\n副将榜奖励（副将等级超过主将10级以上不能领取奖励,有VIP特权除外）： \r\n第1名：128元+吕布虎符*20 \r\n第2名：88元+曹操虎符*15 \r\n第3名：68元+貂蝉虎符*12 \r\n第4-6名：8888金+吕布虎符*10 \r\n第7-10名：6666金+曹操虎符*8 \r\n第11-20名：3333金+貂蝉虎符*5 \r\n娱乐榜奖励： \r\n第1名：30000金+貂蝉虎符*20 \r\n第2名：25000金+吕布虎符*15 \r\n第3名：20000金+曹操虎符*12 \r\n第4-6名：10000金+貂蝉虎符*10 \r\n第7-10名：6000金+吕布虎符*8",
          state: 1,
          createTime: "2024-04-28 16:51:56.0"
        },
        {
          id: 155,
          title: "清明节活动",
          content: "活动时间：4月4-6日 \r\n1.活动期间，体力值战斗3倍效果； \r\n2.宴请副将效果翻倍（每90金增加2000点默契度）； \r\n3.直接使用副将心法书5倍效果 （每天限20本）。\r\n有游戏问题可联系QQ处理：2326350384。",
          state: 1,
          createTime: "2024-04-03 22:11:30.0"
        },
        {
          id: 154,
          title: "龙抬头活动",
          content: "活动时间：3月9-12日\r\n1.活动期间，宝库限时出售国士令；\r\n2.活动期间，体力值双倍领取； \r\n3.活动期间，驯养坐骑双倍效果。\r\n游戏问题反馈联系QQ：2326350384",
          state: 1,
          createTime: "2024-03-08 22:22:21.0"
        },
        {
          id: 153,
          title: "元宵节活动",
          content: "活动时间：2月25-27日\r\n1.活动期间，散财童子降临，每天10点开始散财，一小时一次，一天共10次，每次随机5名在线玩家获得200金币； \r\n2.活动期间，体力值效果3倍； \r\n3.活动期间，宴请副将效果翻倍（每90金增加2000点默契度）。 \r\n有游戏问题可联系QQ处理：2326350384。",
          state: 1,
          createTime: "2024-02-24 17:35:08.0"
        },
        {
          id: 152,
          title: "龙腾盛世迎新春",
          content: "活动时间：2月9-17日\r\n1.2月9-11日，新活动，新春问答发红包，等级达到40同时活跃达到70，每天18-23点，每20分钟答题一次，回答正确（回答A.B.C.D大写字母选项）可获得随机金币奖励，答错无奖励；\r\n2.2月9-11日，宝库商品随机4-7折出售； \r\n3.2月9-11日，直接使用副将心法书五倍效果（每天限20本）；\r\n4.2月12-14日，体力值效果3倍；\r\n5.2月12-14日，宴请副将效果翻倍（每90金增加2000点默契度）； \r\n6.2月15-17日，体力值双倍领取；\r\n7.2月15-17日，驯养坐骑效果翻倍（每20金增加平时双倍经验）；\r\n8.2月9-17日，游乐场手续费降低至1%。",
          state: 1,
          createTime: "2024-02-08 20:39:43.0"
        },
        {
          id: 151,
          title: "迎小年活动",
          content: "活动时间：2月2-4日\r\n1.活动期间，宝库限时出售国士令；\r\n2.活动期间，宝库道具随机折扣；\r\n3.活动期间，体力值双倍领取； \r\n4.活动期间，驯养坐骑双倍效果；\r\n5.活动期间，散财童子降临，每天10点开始散财，一小时一次，一天共10次，每次随机5名在线玩家获得200金币。\r\n有游戏问题可联系QQ处理：2326350384。",
          state: 1,
          createTime: "2024-02-01 23:19:29.0"
        },
        {
          id: 150,
          title: "火爆新区《火烧新野》",
          content: "1月29日中午11点开启新区《火烧新野》 \r\n冲新区，新国士副将曹操、吕布、貂蝉降临；全新玩法"单刀赴会"，独创的双人公平竞技模式。 \r\n更有全新抽奖大转盘，30W金币奖池等你来抽。\r\n新区冲级、养副将、玩游乐场，发放大量现金、新副将、金币奖励(共计两大波) \r\n第一波，开区7天后（2月4日10点统计） \r\n等级榜奖励： \r\n第1名：88元+曹操虎符*20 \r\n第2名：58元+曹操虎符*15 \r\n第3名：28元+曹操虎符*10 \r\n第4-6名：8888金+貂蝉虎符*8 \r\n第7-10名：6666金+吕布虎符*5 \r\n副将榜奖励（副将等级超过主将10级以上不能领取奖励，有VIP特权除外）： \r\n第1名：88元+吕布虎符*20 \r\n第2名：58元+吕布虎符*15 \r\n第3名：28元+吕布虎符*10 \r\n第4-6名：6666金+曹操虎符*8 \r\n第7-10名：3333金+貂蝉虎符*5 \r\n娱乐榜奖励： \r\n第1名：15000金+貂蝉虎符*20\r\n第2名：12000金+貂蝉虎符*15\r\n第3名：10000金+貂蝉虎符*10\r\n第4-6名：6000金+吕布虎符*8\r\n第7-10名：3000金+曹操虎符*5\r\n\r\n第二波奖励，开区14天后（2月11日10点统计） \r\n等级榜奖励： \r\n第1名：128元+曹操虎符*20\r\n第2名：88元+吕布虎符*15\r\n第3名：68元+貂蝉虎符*12\r\n第4-6名：16666金+曹操虎符*10\r\n第7-10名：8888金+吕布虎符*8\r\n第11-20名：6666金+貂蝉虎符*5\r\n副将榜奖励（副将等级超过主将10级以上不能领取奖励,有VIP特权除外）： \r\n第1名：128元+吕布虎符*20\r\n第2名：88元+曹操虎符*15\r\n第3名：68元+貂蝉虎符*12\r\n第4-6名：8888金+吕布虎符*10\r\n第7-10名：6666金+曹操虎符*8\r\n第11-20名：3333金+貂蝉虎符*5 \r\n娱乐榜奖励： \r\n第1名：30000金+貂蝉虎符*20\r\n第2名：25000金+吕布虎符*15\r\n第3名：20000金+曹操虎符*12\r\n第4-6名：10000金+貂蝉虎符*10\r\n第7-10名：6000金+吕布虎符*8\r\n第11-20名：3000金+曹操虎符*5",
          state: 1,
          createTime: "2024-01-23 12:24:21.0"
        },
        {
          id: 149,
          title: "欢度元旦",
          content: "欢度元旦\r\n活动时间：1月1-3日\r\n1.活动期间，游乐场手续费降低至1%；\r\n2.活动期间，宝库道具随机折扣；\r\n3.活动期间，体力值双倍领取；\r\n4.活动期间，驯养坐骑双倍效果。\r\n\r\n有游戏问题可联系QQ处理：2326350384。",
          state: 1,
          createTime: "2023-12-31 19:29:31.0"
        },
        {
          id: 148,
          title: "桃园孙坚合区预告",
          content: "孙坚匿玺即将合入桃园结义，因此次合区数据量巨大，特制订以下合区条件，尽量缩短合区时间。\r\n合区时间：1月10日上午10点开始，预计合区时间可能再1-2天，也可能更久。\r\n参与合区角色条件：等级≥50级并且180天有过登录，或者VIP≥5。\r\n此次合区条件较高，因此提前通知让大家有所准备，望大家奔走相告，避免损失哦。\r\n\r\n游戏问题反馈请联系QQ：2326350384",
          state: 1,
          createTime: "2023-12-27 21:56:03.0"
        },
        {
          id: 147,
          title: "圣诞快乐",
          content: "活动时间：12月24-26日\r\n1.活动期间，可从宝库总购买获得"国士令"（每个角色限购10个）；\r\n2.活动期间，体力值效果3倍；\r\n3.活动期间，副将宴请双倍效果。 \r\n\r\n有游戏问题可联系QQ处理：2326350384。",
          state: 1,
          createTime: "2023-12-23 18:49:49.0"
        },
        {
          id: 146,
          title: "双十二活动",
          content: "活动时间：12月12-14日 \r\n1.活动期间，商城道具自选半价折扣礼盒（每天限购一次）； \r\n2.活动期间，体力值双倍领取； \r\n3.活动期间，驯养坐骑双倍效果。 \r\n4.新区12月13日擂台斗将现金奖励活动，第一名奖888元，第二名奖555元，第三名奖333元，第四名奖111元，第五名奖88元。\r\n\r\n有游戏问题可联系QQ处理：2326350384。",
          state: 1,
          createTime: "2023-12-11 22:20:25.0"
        },
        {
          id: 145,
          title: "感恩节活动",
          content: "活动时间：11月23-25日\r\n1.活动期间，散财童子降临，每天10点开始散财，一小时一次，一天共10次，每次随机5名在线玩家获得200金币； \r\n2.活动期间，体力值效果3倍； \r\n3.活动期间，副将宴请双倍效果。 \r\n\r\n有游戏问题可联系QQ处理：2326350384。",
          state: 1,
          createTime: "2023-11-22 22:37:27.0"
        },
        {
          id: 144,
          title: "双十一活动",
          content: "活动时间：11月11-13日\r\n1.活动期间，可从宝库总购买获得"国士令"（每个角色限购10个）； \r\n2.活动期间，宝库商品随机4-7折出售； \r\n3.活动期间，游乐场手续费降低至1%。 \r\n\r\n有游戏问题可联系QQ处理：2326350384。",
          state: 1,
          createTime: "2023-11-10 17:16:40.0"
        }
      ];

      console.log(`📊 准备导入 ${announcements.length} 条公告数据`);

      // 清空现有数据
      await this.connection.execute('DELETE FROM announcements');
      console.log('🗑️  清空现有公告数据');

      // 导入新数据
      let importedCount = 0;
      for (const announcement of announcements) {
        try {
          await this.connection.execute(`
            INSERT INTO announcements (id, title, content, state, publishTime, created_at) 
            VALUES (?, ?, ?, ?, ?, NOW())
          `, [
            announcement.id,
            announcement.title,
            announcement.content,
            announcement.state,
            announcement.createTime
          ]);

          console.log(`📝 导入公告 ${announcement.id}: ${announcement.title}`);
          importedCount++;
    } catch (error) {
          console.error(`❌ 导入公告 ${announcement.id} 失败:`, error.message);
        }
      }

      console.log(`✅ 公告数据导入完成！共导入 ${importedCount} 条公告`);

    } catch (error) {
      console.error('❌ 导入公告数据失败:', error.message);
      throw error;
    }
  }

  /**
   * 验证导入结果
   */
  async verifyImport() {
    try {
      console.log('\n🔍 验证导入结果...');

      // 检查公告总数
      const [countResult] = await this.connection.execute('SELECT COUNT(*) as count FROM announcements');
      console.log(`📊 公告总数: ${countResult[0].count}`);

      // 检查各状态公告数量
      const [stateStats] = await this.connection.execute(`
        SELECT state, COUNT(*) as count 
        FROM announcements 
        GROUP BY state 
        ORDER BY state
      `);

      console.log('📊 各状态公告数量:');
      stateStats.forEach(stat => {
        const stateName = stat.state === 1 ? '启用' : '禁用';
        console.log(`  状态 ${stat.state} (${stateName}): ${stat.count} 条`);
      });

      // 显示最新公告
      console.log('\n📋 最新公告列表:');
      const [latestAnnouncements] = await this.connection.execute(`
        SELECT id, title, state, publishTime 
        FROM announcements 
        ORDER BY publishTime DESC 
        LIMIT 5
      `);

      latestAnnouncements.forEach(announcement => {
        const stateName = announcement.state === 1 ? '启用' : '禁用';
        console.log(`  ID=${announcement.id}, 标题=${announcement.title}, 状态=${announcement.state}(${stateName}), 时间=${announcement.publishTime}`);
      });

    } catch (error) {
      console.error('❌ 验证导入结果失败:', error.message);
      throw error;
    }
  }

  /**
   * 运行完整的导入流程
   */
  async run() {
    try {
      await this.connect();
      
      // 检查公告表
      let tableName = await this.checkAnnouncementTable();
      
      // 如果没有公告表，创建它
      if (!tableName) {
        await this.createAnnouncementTable();
        tableName = 'announcements';
      }
      
      // 导入公告数据
      await this.importAnnouncements();
      
      // 验证导入结果
      await this.verifyImport();

      console.log('\n🎉 公告导入完成！');

    } catch (error) {
      console.error('💥 导入流程失败:', error.message);
      process.exit(1);
    } finally {
      await this.disconnect();
    }
  }
}

// 运行导入脚本
async function main() {
  const importer = new AnnouncementImporter();
  await importer.run();
}

// 如果直接运行此脚本
if (require.main === module) {
  main().catch((error) => {
    console.error('💥 脚本执行失败:', error.message);
    process.exit(1);
  });
}

module.exports = AnnouncementImporter; 